Relatively large and complex computer software programs, such as computer operating systems, may have a number of separate components that work together. In some cases, maintainers of large and complex computer software programs may provide new versions of some of the components without necessarily providing new versions of others, thus making it difficult to ascertain which versions of which components work best together. Furthermore, when the large and complex computer software program is a computer operating system, it may be necessary for other programs, such as application programs, to ascertain the version of the operating system. However, this may be difficult in situations where the operating system is comprised of various components, some of which may have different version numbers.
In addition to the potential for different version numbers for different components, it may be desirable to cause new components to be part of the “baseline” of a relatively large and complex software program where the baseline represents the collection of components, and the minimum versions thereof, that make up the program. However, conventional software update mechanisms, while capable of modifying/updating existing software components, may not necessarily be capable of causing the new components to be part of the baseline of a relatively large and complex software program.
It is desirable to provide a system that addresses these issues to provide better management of component versioning and a mechanism for adding components to a baseline for a relatively large and complex computer software program.